package cn.jsj.hzu.qm.facecloud.utils;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import cn.jsj.hzu.qm.facecloud.ciuser.pojo.Ciuser;

/**
 * 用于给用户排序的类
 * 
 * */
public class CiUserSort {
	
	/**
	 * 返回用于排序的权重<br/>
	 * type 不是按顺序排列的，在此处返回对应的实际权重大小。
	 * **/
	private static final int getRealCiuserOrder(int type) {
		int r = 0;
		
		switch(type) {
		case 1:{
			// 系统管理员
			
			r = 0;
			break;
		}
		case 2:{
			// 实验室负责人
			
			r = 1;
			break;
		}
		case 0:{
			// 标准用户
			
			r = 2;
		}
		}
		
		return r;
	}
	/**
	 * 
	 * Ciuser 的排序规则
	 * 
	 * 第一顺序：权限
	 * 第二顺序：注册时间
	 * 
	 * 
	 * */
	private static final Comparator<Ciuser> sorter = new Comparator<Ciuser>() {
		@Override
		public int compare(Ciuser o1, Ciuser o2) {
			int o1w = getRealCiuserOrder(o1.getType());
			int o2w = getRealCiuserOrder(o2.getType());
			
			if (o1w != o2w) {
				return o1w - o2w;
			}
			else {
				return o1.getRegtime().compareTo(o2.getRegtime());
			}
		}
	};
	
	
	/**
	 * Ciuser的排序，依次按权限和注册时间排序。
	 * */
	public static void sort(List<Ciuser> ciusers) {
		// 按上述规则排序
		Collections.sort(ciusers, sorter);
		return;
	}
}
